/**
 * 
 */
package com.zxc.redis.RSet;

import org.redisson.Redisson;
import org.redisson.api.RSet;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;

import com.zxc.redis.AnyObject;

/**
 * @author Administrator
 *
 */
public class RSetDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Config config = new Config();
		config
			//.setCodec(new FstCodec())
			.useSingleServer() //单例模式
			.setAddress("192.168.1.122:6379")//连接地址
			.setDatabase(1) // 数据库索引位置
			.setPassword("shijie99test") // 密码
			.setClientName("channelbatch") // 客户端名称
			;
		RedissonClient redisson = Redisson.create(config);

		RSet<AnyObject> set = redisson.getSet("anySet");
		set.delete();
		set.add(new AnyObject(1));
		set.add(new AnyObject(2));
		set.add(new AnyObject(3));
		System.out.println("set 集合内的所有元素："+set.readAll());
		
		RSet<AnyObject> set1 = redisson.getSet("anySet1");
		set1.delete();
		set1.add(new AnyObject(2));
		set1.add(new AnyObject(3));
		set1.add(new AnyObject(4));
		System.out.println("set1 集合内的所有元素："+set1.readAll());
		
		RSet<AnyObject> set2 = redisson.getSet("anySet2");
		set2.delete();
		set2.add(new AnyObject(5));
		set2.add(new AnyObject(6));
		set2.add(new AnyObject(7));
		System.out.println("set2 集合内的所有元素："+set2.readAll());
		
		// 差集
//		int i = set2.diff("anySet2","anySet1");// 找出差集并将差集写入到anySet2中
//		System.out.println("获取差集的元素数量："+i);
//		System.out.println("获取差集内的所有元素："+set.readDiff("anySet1"));// 找出差集且不写入到anySet中，同时返回差集数据
		
		// 交集
//		int i = set2.intersection("anySet2","anySet1");// 找出交集并将差集写入到anySet2中
//		System.out.println("获取交集的元素数量："+i);
//		System.out.println("获取交集内的所有元素："+set.readIntersection("anySet1"));// 找出交集且不写入到anySet中，同时返回交集数据
		
		// 并集
		int i = set2.union("anySet2","anySet1");
		System.out.println("获取并集的元素数量："+i);
		System.out.println("set2 集合内的所有元素："+set2.readAll());
		System.out.println("获取并集内的所有元素："+set.readUnion("anySet1"));
		
//		set.remove(new AnyObject(2));
		
		redisson.shutdown();
	}

}
